home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / Sample Code / SCSI Samples 1.0 / SCSI Async Sample 06⁄15 ƒ / Src / DisplayTestParameters.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-16  |  3.4 KB  |  132 lines  |  [TEXT/KAHL]

  1. /*                                DisplayTestParameters.c                            */
  2. /*
  3.  * DisplayTestParameters.c
  4.  * Copyright © 93 Apple Computer Inc. All Rights Reserved.
  5.  *
  6.  * Run the dialog until the user has had enough.
  7.  */
  8. #include "SCSIAsyncSample.h"
  9. #include "SCSIDefinitions.h"
  10. #include <math.h>
  11. #define ALWAYS        1
  12. #define NEVER        1
  13. #define INFO        (*infoPtr)
  14.  
  15. void
  16. DisplayOneParameter(
  17.         register InfoPtr                infoPtr
  18.     );
  19.  
  20.  
  21. void
  22. DisplayTestParameters(void)
  23. {
  24.         InfoPtr                            currentInfoPtr;
  25.         
  26.         if (infoPtrQueue.qHead == NULL)
  27.             DisplayLogString(gLogListHandle, "\pNo devices to test");
  28.         for (currentInfoPtr = (InfoPtr) infoPtrQueue.qHead;
  29.                 currentInfoPtr != NULL;
  30.                 currentInfoPtr = (InfoPtr) currentInfoPtr->link) {
  31.             DisplayOneParameter(currentInfoPtr);
  32.         }
  33. }
  34.  
  35. void
  36. DisplayOneParameter(
  37.         register InfoPtr                infoPtr
  38.     )
  39. {
  40.         Str255                            work;
  41.  
  42.         DisplayDeviceInfo(infoPtr);
  43.         if (INFO.validDevice) {
  44.             work[0] = 0;
  45.             AppendPascalString(work, "\p Buffer Length: ");
  46.             AppendUnsigned(work, INFO.bufferLength);
  47.             DisplayLogString(gLogListHandle, work);
  48.             /* */
  49.             work[0] = 0;
  50.             AppendPascalString(work, "\p Transfer Quantum: ");
  51.             AppendUnsigned(work, INFO.transferQuantum);
  52.             switch (INFO.transferQuantum) {
  53.             case 0:        AppendPascalString(work, "\p (normal)");        break;
  54.             case 1:     AppendPascalString(work, "\p (polled)");        break;
  55.             default:    AppendPascalString(work, "\p (blocked)");        break;
  56.             }
  57.             DisplayLogString(gLogListHandle, work);
  58.             /* */
  59.             work[0] = 0;
  60.             AppendPascalString(work, "\p Transfer Size: ");
  61.             AppendUnsigned(work, INFO.transferSizeBlocks);
  62.             AppendPascalString(work, "\p (blocks)");
  63.             DisplayLogString(gLogListHandle, work);
  64.             /* */
  65.             work[0] = 0;
  66.             if (INFO.totalTransfers == 0)
  67.                 AppendPascalString(work, "\p Unlimited transfers");
  68.             else if (INFO.totalTransfers == 1)
  69.                 AppendPascalString(work, "\p One transfer only");
  70.             else {
  71.                 AppendPascalString(work, "\p Stop after ");
  72.                 AppendUnsigned(work, INFO.totalTransfers);
  73.                 AppendPascalString(work, "\p transfers");
  74.             }
  75.             DisplayLogString(gLogListHandle, work);
  76.             /* */
  77.             work[0] = 0;
  78.             AppendPascalString(work, "\p Asychronous transfers ");
  79.             AppendPascalString(work, (INFO.enableAsync) ? "\penabled" : "\pdisabled");
  80.             DisplayLogString(gLogListHandle, work);
  81.             /* */
  82.             work[0] = 0;
  83.             AppendPascalString(work, "\p Disconnect ");
  84.             AppendPascalString(work, (INFO.enableDisconnect) ? "\penabled" : "\pdisabled");
  85.             DisplayLogString(gLogListHandle, work);
  86.             /* */
  87.             work[0] = 0;
  88.             DisplayLogString(gLogListHandle, (INFO.enableRandomSeek)
  89.                     ? "\p Random Seek"
  90.                     : "\p Sequential Read"
  91.                 );
  92.         }
  93. }
  94.  
  95. void
  96. DisplayDeviceInfo(
  97.         register InfoPtr                infoPtr
  98.     )
  99. {
  100.         Str255                            work;
  101.  
  102.         pstrcpy(work, "\p• Thread: ");
  103.         AppendUnsigned(work, INFO.threadIndex);
  104.         if (INFO.validDevice == FALSE) {
  105.             AppendPascalString(work, "\p - Invalid Device");
  106.             DisplayLogString(gLogListHandle, work);
  107.         }
  108.         else {
  109.             AppendPascalString(work, "\p: ");
  110.             AppendSCSIBusID(work, INFO.deviceIdent);
  111.             AppendPascalString(work, "\p “");
  112.             AppendPascalString(work, (StringPtr) INFO.vendor);
  113.             AppendPascalString(work, "\p, ");
  114.             AppendPascalString(work, (StringPtr) INFO.product);
  115.             AppendPascalString(work, "\p”");
  116.             DisplayLogString(gLogListHandle, work);
  117.         }
  118. }
  119.  
  120. void
  121. AppendSCSIBusID(
  122.         StringPtr            result,
  123.         DeviceIdent            deviceIdent
  124.     )
  125. {
  126.         
  127.         AppendPascalString(result, "\pBus ID: ");
  128.         AppendUnsigned(result, deviceIdent.bus);
  129.         AppendChar(result, '.');
  130.         AppendUnsigned(result, deviceIdent.targetID);
  131. }
  132.